package com.example.avmanagerweb.Utils.String;

import java.util.regex.Pattern;

public class StringValidator {
    private static final String NAME_REGEX = "^[\\u4e00-\\u9fa5a-zA-Z0-9]{2,12}$";
    private static final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$";
    private static final String ACCOUNT_REGEX = "^[a-zA-Z0-9]{6,12}$";
    private static final String PHONE_NUMBER_REGEX = "^\\d{11}$";

    /**
     * 电话号码校验
     * @param phoneNumber
     * @return
     * -  ^ ：匹配字符串的开头
     * -  \\+ ：匹配一个加号字符
     * -  (?:[0-9] ?){6,14} ：匹配6到14个数字，每个数字后面可以有一个可选的空格
     * -  [0-9] ：匹配一个数字
     * -  $ ：匹配字符串的结尾
     */
    public static boolean isValidPhoneNumber(String phoneNumber) {
        Pattern pattern = Pattern.compile(PHONE_NUMBER_REGEX);
        return pattern.matcher(phoneNumber).matches();
    }


    /**
     *持数字和字母 长度6-12
     * @param password
     * @return
     */
    public static boolean isValidAccount(String password) {
        Pattern pattern = Pattern.compile(ACCOUNT_REGEX);
        return pattern.matcher(password).matches();
    }
    /**
     * 密码校验
     * @param password
     * @return
     * 该正则表达式要求密码至少包含一个数字、一个小写字母、一个大写字母、一个特殊字符（@#$%^&+=）和长度至少为8个字符
     */

    public static boolean isValidPwd(String password) {
        Pattern pattern = Pattern.compile(PASSWORD_PATTERN);
        return pattern.matcher(password).matches();
    }

    /**
     * 名称  和 备注校验
     * @param input
     * @return
     */
    public static boolean isValidStringNanem(String input) {
        return Pattern.matches(NAME_REGEX, input);
    }
}